home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 9
/
FM Towns Free Software Collection 9.iso
/
t_os
/
tool
/
vdgear
/
src
/
tm.c
< prev
next >
Wrap
Text File
|
1994-11-16
|
3KB
|
123 lines
/*
* golo
*/
#include <msdos.cf>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <egb.h>
char *TM_work;
char *TM_para;
int r[4],g[4],b[4];
void TM_set_pal(int i, char r, char g, char b)
{
DWORD(TM_para+ 0) = 1;
DWORD(TM_para+ 4) = i;
BYTE(TM_para+ 8) = b;
BYTE(TM_para+ 9) = r;
BYTE(TM_para+10) = g;
BYTE(TM_para+11) = 0;
EGB_palette(TM_work,1,TM_para);
}
void TM_screen()
{
EGB_init(TM_work,1536);
EGB_resolution(TM_work,0, 3);
EGB_displayPage(TM_work,0,1);
EGB_writePage(TM_work,0);
EGB_color(TM_work,1,0);
EGB_clearScreen(TM_work);
EGB_displayStart(TM_work,3,640,480);
}
void TM_load()
{
FILE *fp;
char *buf;
buf = malloc(513);
fp = fopen("good_chy.tm", "rb"); /* デ-タ読み込み */
fread(buf, 1, 513, fp);
fclose(fp);
r[0] = 192; g[0] = 96; b[0] = 64;
r[1] = 240; g[1] = 192; b[1] = 160;
r[2] = 0; g[2] = 0; b[2] = 160;
r[3] = 255; g[3] = 255; b[3] = 255;
TM_set_pal( 2,192, 96, 64); /* パレット */
TM_set_pal( 3,240,192,160);
TM_set_pal(11, 0, 0,160);
TM_set_pal(14, 0, 0, 0);
TM_set_pal(15,255,255,255);
DWORD(TM_para+ 0) = (unsigned int)buf; /* 表示 */
WORD(TM_para+ 4) = getds();
WORD(TM_para+ 6) = 304;
WORD(TM_para+ 8) = 224;
WORD(TM_para+10) = 335;
WORD(TM_para+12) = 255;
EGB_putBlock(TM_work, 0, TM_para);
free(buf);
}
void TM_main()
{
int z,i;
TM_work = malloc(1536);
TM_para = malloc(64);
TM_screen();
TM_load();
for (z=16 ; z>1 ; z--) /* 縮小 */
{
EGB_displayStart(TM_work,2,z,z);
EGB_displayStart(TM_work,1,320-(320/z),240-(240/z));
TM_set_pal(15,255,255,255);
}
EGB_textZoom(TM_work,1,16,16); /* 文字表示 */
EGB_fontStyle(TM_work,0);
EGB_color(TM_work,0,14);
WORD(TM_para+0) = 256;
WORD(TM_para+2) = 280;
WORD(TM_para+4) = 16;
strcpy((char *)(TM_para+6),"PRESENTS");
EGB_sjisString(TM_work,TM_para);
for (z=0 ; z<256 ; z+=2) /* フェ-ドイン */
{ TM_set_pal(14,z,z,z); }
for (z=0 ; z<32 ; z++) /* フェ-ドアウト */
{
for (i=0 ; i<4 ; i++)
{
r[i]-=8; g[i]-=8; b[i]-=8;
if (r[i]<0) { r[i] = 0; }
if (g[i]<0) { g[i] = 0; }
if (b[i]<0) { b[i] = 0; }
}
TM_set_pal( 2,r[0], g[0], b[0]);
TM_set_pal( 3,r[1], g[1], b[1]);
TM_set_pal(11,r[2], g[2], b[2]);
TM_set_pal(14,r[3], g[3], b[3]);
TM_set_pal(15,r[3], g[3], b[3]);
}
EGB_color(TM_work,1,0);
EGB_clearScreen(TM_work);
free(TM_work);
free(TM_para);
}